package org.example.framework;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

@NoArgsConstructor
@AllArgsConstructor
@Data
public class Invocation implements Serializable {

    private static final long serialVersionUID = 9068467516458971013L;

    private String interfaceName;
    private String methodName;
    private Class<?>[] paramTypes;
    private Object[] params;
    private String version;
    private List<String> tags;


    public Invocation(String interfaceName, String methodName, Class<?>[] paramTypes, Object[] params) {
        this.interfaceName = interfaceName;
        this.methodName = methodName;
        this.paramTypes = paramTypes;
        this.params = params;
    }

    public Invocation(String interfaceName, String methodName, Class<?>[] paramTypes, Object[] params, String version) {
        this.interfaceName = interfaceName;
        this.methodName = methodName;
        this.paramTypes = paramTypes;
        this.params = params;
        this.version = version;
    }
}
